package com.jlcloud.core.mp.support;

import com.baomidou.mybatisplus.core.metadata.IPage;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;
import java.util.Collections;
import java.util.List;

/**
 * 分页模型
 *
 * @author By: JlCloud <br>
 * @Package: com.jlcloud <br>
 * @CreateTime: 2024-12-03 21:45 <br>
 * @Copyright: 2021 www.jilianjituan.com Inc. All rights reserved. <br>
 * @Caution 注意：本内容仅限于冀联人力集团内部传阅，禁止外泄以及用于其他的商业目的 <br>
 */
@Data
public class JlCloudPage<T> implements Serializable {

	@Serial
	private static final long serialVersionUID = 1L;

	/**
	 * 查询数据列表
	 */
	private List<T> records = Collections.emptyList();

	/**
	 * 总数
	 */
	private long total = 0;
	/**
	 * 每页显示条数，默认 10
	 */
	private long size = 10;

	/**
	 * 当前页
	 */
	private long current = 1;

	/**
	 * mybatis-plus分页模型转化
	 *
	 * @param page 分页实体类
	 * @return JlCloud<T>
	 */
	public static <T> JlCloudPage<T> of(IPage<T> page) {
		JlCloudPage<T> jlcloudPage = new JlCloudPage<>();
		jlcloudPage.setRecords(page.getRecords());
		jlcloudPage.setTotal(page.getTotal());
		jlcloudPage.setSize(page.getSize());
		jlcloudPage.setCurrent(page.getCurrent());
		return jlcloudPage;
	}

}
